gl renderer: Check the scale factor for every render
authorTimm Bäder <mail@baedert.org>
Tue, 6 Feb 2018 08:19:02 +0000 (09:19 +0100)
committerTimm Bäder <mail@baedert.org>
Tue, 6 Feb 2018 08:19:40 +0000 (09:19 +0100)
This way we pick up changes in the GdkWindow's scale_factor.

gsk/gl/gskglrenderer.c

index b9b5805cf9f0de960197861a4267a3a3744aae1a..51cd61ee0ea95e3d9c012a243c9e0432cadeeee9 100644 (file)
@@ -1839,8 +1839,6 @@ gsk_gl_renderer_realize (GskRenderer  *renderer,
 {
   GskGLRenderer *self = GSK_GL_RENDERER (renderer);
 
-  self->scale_factor = gdk_window_get_scale_factor (window);
-
   /* If we didn't get a GdkGLContext before realization, try creating
    * one now, for our exclusive use.
    */
@@ -2509,6 +2507,7 @@ gsk_gl_renderer_render_texture (GskRenderer           *renderer,
   width = ceilf (viewport->size.width);
   height = ceilf (viewport->size.height);
 
+  self->scale_factor = gdk_window_get_scale_factor (gsk_renderer_get_window (renderer));
   gdk_gl_context_make_current (self->gl_context);
 
   /* Prepare our framebuffer */
@@ -2552,6 +2551,7 @@ gsk_gl_renderer_render (GskRenderer   *renderer,
   if (self->gl_context == NULL)
     return;
 
+  self->scale_factor = gdk_window_get_scale_factor (window);
   gdk_gl_context_make_current (self->gl_context);
 
   viewport.origin.x = 0;
@@ -2585,8 +2585,6 @@ gsk_gl_renderer_init (GskGLRenderer *self)
 {
   gsk_ensure_resources ();
 
-
-  self->scale_factor = 1;
   self->render_ops = g_array_new (FALSE, FALSE, sizeof (RenderOp));
 
 #ifdef G_ENABLE_DEBUG